package cn.tedu;

import java.sql.*;
import java.util.Scanner;

public class Demo07 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入用户名");
        String username = scanner.nextLine();
        System.out.println("请输入密码");
        String password = scanner.nextLine();

        try(Connection conn= DBUtils.getConn()
        ){
//            Statement s= conn.createStatement();
//            String sql="select count(*) from user where username ='"+username+"'and password='"+password+"'";
//            System.out.println(sql);
//            ResultSet rs=s.executeQuery(sql);
            String sql="select count(*) from user where username=? and password=?";
            //PerparedStatement预编译的SQL执行对象,在创建对象时候将SQl语句中的逻辑判断部分进行了编译
            //可以理解为SQL语句中的逻辑部分锁死了,只留下?位置 等待用户输入的内容提环进来
            //当把?内容替换时 会以值的方式进行处理 不会再对原有的SQl语句的逻辑产生影响 从而避免SQL注入
            PreparedStatement ps=conn.prepareStatement(sql);
            //替换SQL语句中的?  1和2代表的是?的位置
            ps.setString(1,username);
            ps.setString(2,password);
            ResultSet rs=ps.executeQuery();
            rs.next();
            int count =rs.getInt(1);
            if (count>0){
                System.out.println("登录成功");
            }else {
                System.out.println("用户名或密码错误");
            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}
